#include "gtest/gtest.h"
#include "ArchivoComprimido.h"
#include "ArchivoDocumentos.h"
#include "ArchivoAuxiliar.h"
#include "RegistroAuxiliar.h"

TEST(Code, GammaCode) {

   // This test is named "GammaCode", and belongs to the "Code" test case.
   ArchivoComprimido *e=new ArchivoComprimido("gammaTest");
   e->seekg(0,ios::beg);
   /*e->addGammaCode(100);
   e->addGammaCode(200);
   e->addGammaCode(150);
   e->rellenarBuffer();
   e->addGammaCode(267000);
   e->addGammaCode(268000);
   e->rellenarBuffer();


   e->seekg(0,ios::beg);
   int codigo;
   codigo=e->getGammaCode();
   EXPECT_EQ(100,codigo);
   codigo=e->getGammaCode();
   EXPECT_EQ(200,codigo);
   codigo=e->getGammaCode();
   EXPECT_EQ(150,codigo);
   codigo=e->getGammaCode();
   EXPECT_EQ(267000,codigo);
   codigo=e->getGammaCode();
   EXPECT_EQ(268000,codigo);
   */
   for(unsigned int i=0;i<1000000;i++){
       e->addGammaCode(1000000);
       if(i%100==0)
           e->rellenarBuffer();
   }

   delete(e);

}

TEST(Code, DeltaCode) {

    // This test is named "DeltaCode", and belongs to the "Code" test case.
   ArchivoComprimido *e=new ArchivoComprimido("deltaTest");
   e->seekg(0,ios::beg);
   /*
   e->addDeltaCode(100);
   e->addDeltaCode(200);
   e->addDeltaCode(150);
   e->rellenarBuffer();
   e->addDeltaCode(500);
   e->addDeltaCode(600);
   e->rellenarBuffer();

   e->seekg(0,ios::beg);
   int codigo;
   codigo=e->getDeltaCode();
   EXPECT_EQ(100,codigo);
   codigo=e->getDeltaCode();
   EXPECT_EQ(200,codigo);
   codigo=e->getDeltaCode();
   EXPECT_EQ(150,codigo);
   codigo=e->getDeltaCode();
   EXPECT_EQ(500,codigo);
   codigo=e->getDeltaCode();
   EXPECT_EQ(600,codigo);
   */
   for(unsigned int i=0;i<1000000;i++){
       e->addDeltaCode(1000000);
       if(i%100==0)
           e->rellenarBuffer();
   }


   delete(e);

}

